home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
ein
/
sources
/
einlib.lzh
/
LIBSRC.LZH
/
EIN_CLP2.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-07-18
|
6KB
|
222 lines
/*<Header>==============================================================
*
* CLIP MANAGER / "EIN_CLP2.C"
*
* [ EIN(tm) project : âEâBâôâhâDâNâèâbâvæÇì∞òΓÅòè╓ÉöîQ ]
*
* COPYRIGHT Nam & OZZY 1994, All rights reserved.
*
*-----------------------------------------------------------------------
* V1.0L01â┐ 94.07.08/Nam âvâìâgâ^âCâv(OZZYé│é±é╠è╓Éöé≡ùÿùp)
*</Header>==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <snd.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <egb.h>
#include <msdos.cf>
#include <loader.h>
#include <math.h>
#include <io.h>
#include <guidbg.h>
#define EIN_CLIP
#include "..\eintm.h"
#ifndef NOERR
#define NOERR (0)
#endif
#ifndef ERROR
#define ERROR (1)
#endif
/* âNâèâbâvâfü[â^ì\æóæ╠ */
typedef struct {
WINCLIP *clip;
WINCLIP *visible;
POINT svPos;
} EIN_CLIPWORK; /* âNâèâbâvâfü[â^ì\æóæ╠ */
/*<Func>================================================================
* int EIN_clipFrame( int objId, FRAME *pfr, POINT *ppt, char *work )
*
* üyèT ùvüz ù^éªéτéΩé╜âtâîü[âÇé╠âNâèâbâvé≡É╢ɼé╖éΘüB
*
* üyï@ ö\üz ì└òWé≡î┤ô_é╔û▀é╡üAù^éªéτéΩé╜âtâîü[âÇé╠âNâèâbâvé≡üA
* î╗ì▌é╠âNâèâbâvé╞ AND é≡é╞éΘéµéñé╔É╢ɼé╖éΘüB
*
* üyôⁿ ù═üz
* objId : âNâèâbâvî│é╠âIâuâWâFâNâgID
* *pfr : ìíë±âNâèâbâvé╖éΘâtâîü[âÇé╠â|âCâôâ^(ÉΓæ╬ì└òW)
* NULL objIdé╠âTâCâYé╔É▌ÆΦ
* *ppt : É▌ÆΦé╖éΘî┤ô_é╠â|âCâôâ^(ÉΓæ╬ì└òW)
* NULL é┼ ( 0, 0 )é╔É▌ÆΦ
* *work : âNâèâbâvæ▐ö≡ùpâÅü[âN
*
* üyÅo ù═üz é╚é╡
*
* üyè╓ÉöÆlüz == NOERR É│ÅφÅIù╣
*
* üyÆì ê╙üz
*
* üyÄgùpùßüz
* char clp[EINCLIPSIZE];
*
* MMI_SendMessage( ID_BASE, MM_ATTACH, 1, MMI_GetBaseObj() ) ;
* EIN_clipFrame( ID_BASE, NULL, NULL, clp );
* MMI_SendMessage( ID_BASE, MM_SHOW, 0 ) ;
* MMI_SendMessage( ID_BASE, MM_WAKE, 0 ) ;
* EIN_endClipFrame( clp );
*
*-----------------------------------------------------------------------
* V11L10 1994.07.08/Nam (OZZYé│é±é╠è╓ÉöéµéΦ)
*</Func>==============================================================*/
int EIN_clipFrame( int objId, FRAME *pfr, POINT *ppt, EIN_CLIPWORK *p )
{
WINCLIP *pwclp ;
WINCTRL *pctrl ;
POINT pos ;
FRAME fr ;
/* é¿û±æ⌐é╠ErrorTrap */
if ( p == NULL ){
return ERROR;
}
/* ì└òWîné╠êΩÄ₧ò╧ìX */
if( ppt == NULL ){
pos.x = 0 ;
pos.y = 0 ;
} else {
pos = *ppt ;
}
MG_PushOrigin( &pos, &p->svPos );
if( pfr == NULL ){
EIN_getObjectFrame( objId, &fr ) ;
pwclp = WIN_getClipMemory( &fr, NULL ) ;
} else {
pwclp = WIN_getClipMemory( pfr, NULL ) ;
}
pwclp = WIN_clipWindow( objId, pwclp, FALSE ) ;
/* î╗ì▌é╠âNâèâbâvé╞é╠ and é≡é╞éΘ. */
MMI_GetControl( &pctrl ) ;
pwclp = WIN_andClip( pwclp, pctrl->clip ) ;
/* ò\Īÿgé≡É▌ÆΦé╖éΘ. */
WIN_pushVisible( WIN_copyClip( pwclp ), &p->visible ) ;
WIN_pushClip( pwclp, &p->clip ) ;
return NOERR ;
}
/*<Func>================================================================
* int EIN_endClipFrame( char *work )
*
* üyèT ùvüz âNâèâbâvÿgé╠ò£î│Åêù¥üB
*
* üyï@ ö\üz EIN_clipFrame é┼æ▐ö≡é╡é╜âNâèâbâvÿgé╠ò£î│üB
*
* üyôⁿ ù═üz é╚é╡
*
* üyÅo ù═üz é╚é╡
*
* üyè╓ÉöÆlüz == NOERR É│ÅφÅIù╣
*
* üyÆì ê╙üz
*
* üyÄQ Å╞üz
*
*-----------------------------------------------------------------------
* V11L10 1994.07.08/Nam (OZZYé│é±é╠è╓ÉöéµéΦ)
*</Func>==============================================================*/
int EIN_endClipFrame( EIN_CLIPWORK *p )
{
/* é¿û±æ⌐é╠ErrorTrap */
if ( p == NULL ){
return ERROR;
}
/* ò\Īÿgé≡ò£ïAé╖éΘ. */
WIN_popClip( p->clip ) ;
WIN_popVisible( p->visible );
/* ì└òWîné╠ò£ïA */
MG_PopOrigin( &p->svPos );
return NOERR ;
}
/*<Func>================================================================
* int EIN_getObjectFrame( int objId, FRAME *fr )
*
* üyèT ùvüz âIâuâWâFâNâgé╠æσé½é│é≡ïüé▀éΘüB
*
* üyï@ ö\üz MM_GETHYPERé≡ùpéóé╕é╔ id é┼Īé│éΩéΘâIâuâWâFâNâgé╠æσé½é│é≡
* ò╘é╖üB
*
* üyôⁿ ù═üz
* objId : ö╗ÆΦé╖éΘòöòiId
* *fr : òöòié╠æσé½é│é≡ò╘é╖â|âCâôâ^
*
* üyÅo ù═üz
* *fr : òöòié╠æσé½é│é≡ò╘é╖
*
* üyè╓ÉöÆlüz == NOERR É│ÅφÅIù╣
*
* üyÆì ê╙üz
*
* üyÄQ Å╞üz
*
*-----------------------------------------------------------------------
* V11L10 1994.07.08/Nam (OZZYé│é±é╠è╓ÉöéµéΦ)
*</Func>==============================================================*/
int EIN_getObjectFrame( int objId, FRAME *fr )
{
*fr = ( ( HYPER *)( TL_getObjectPtr( objId )->data ) )->fr ;
return NOERR ;
}
/*<Func>================================================================
* int EIN_clipWake( int objId )
*
* üyèT ùvüz âEâBâôâhâEâNâèâbâvé≡ìlù╢é╡é─é╔WAKEé╖éΘ
*
* üyï@ ö\üz âEâBâôâhâEÿgé≡æSëµû╩ë≡Å£é╡é─MM_SHOW, MM_WAKEé╡é─âNâèâbâvò£ïA
*
* üyôⁿ ù═üz
*
* üyÅo ù═üz é╚é╡
*
* üyè╓ÉöÆlüz == NOERR É│ÅφÅIù╣
* != NOERR objIdê┘Åφ
*
* üyÆì ê╙üz
*
* üyÄQ Å╞üz
*
*-----------------------------------------------------------------------
* V11L10 1994.07.08/Nam (éñé▄é¡ô«é⌐é╚éó(T-T))
*</Func>==============================================================*/
int EIN_clipWake( int objId )
{
WINCLIP *pwclps;
EIN_CLIPWORK p; /* âNâèâbâvâfü[â^ì\æóæ╠ */
/* é¿û±æ⌐é╠ErrorTrap */
if ( objId < 1 ){
return ERROR;
}
EIN_clipFrame( objId, NULL, NULL, &p );
WIN_beginUpDateObj( objId, &pwclps ) ;
MMI_SendMessage( objId, MM_SHOW, 0 );
MMI_SendMessage( objId, MM_WAKE, 0 );
WIN_endUpDateObj( pwclps ) ;
EIN_endClipFrame( &p );
return NOERR ;
}